home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
fdsnd_20.arc
/
FDSEND.DOC
< prev
next >
Wrap
Text File
|
1991-12-17
|
11KB
|
325 lines
FDSEND v1 A binary file encoding program (with encryption
option) for file transfer via FTSC network email
systems.
last modified 05 Nov 91
Plain Jayne Software, home of TPBoard v7
Distributed by:
Online Communications, Inc
22 State Street
Bangor, Maine, USA 04401
Voice (207) 941-1110
FidoNet 1:132/300
What is FDSEND?
---------------
FDSEND enables sending binary files as Ascii messages via PC
networks that utilize the OPus/Fido message format (.MSG
files). The method is identical to the uuencode/uudecode
algorithms that have been used in the Unix world for many
years. This is an important difference between the Unix and
PC-based mail networks; at the time of release, no known PC
networks provide the capability of transmitting binary files
using standard message channels.
How does FDSEND work?
---------------------
In simply terms, FDSEND converts a binary file into Ascii
form such that network mailing software can handle the file
without causing **ANY** problems to the network. In more
detail, FDSEND uses a method *identical* to the Unix
encoding algorithm: every 6 bits of the binary file is
written as an Ascii character.
In Pascal, this is implemented as:
function ENC(c:integer): char;
begin
enc := char( ( c and 63) + 32 )
end;
procedure outdec(p:word);
var
c1, c2, c3, c4 : byte;
begin
c1 := buf^[p] shr 2;
c2 := ( ( buf^[p] shl 4) and 48 ) OR
( (buf^[p+1] shr 4) and 15);
c3 := ( ( buf^[p+1] shl 2) and 60 ) OR
( (buf^[p+2] shr 6) and 11);
c4 := buf^[p+2] and 63;
write (ouf,ENC(c1));
write (ouf,ENC(c2));
write (ouf,ENC(c3));
write (ouf,ENC(c4));
end;
In C, this is implemented as:
#define ENC(c) ( ((c) & 077) + ' ')
outdec(p)
register char *p;
{
register int c1, c2, c3, c4;
c1 = *p >> 2;
c2 = (*p << 4) & 060 | (p[1] >> 4) & 017;
c3 = (p[1] << 2) & 074 | (p[2] >> 6) & 03;
c4 = p[2] & 077;
putchar(ENC(c1));
putchar(ENC(c2));
putchar(ENC(c3));
putchar(ENC(c4));
}
FDSEND converts the binary file into smaller encoded files
having the extension UUE. The total space of the encoded
files will be about 25% larger than the single binary
original. The last letter of the filename (not including
the uue extension) represents that file's position in the
decoding sequence. Having said that, note that FDSEND does
NOT produce the individual UUE files; rather Opus/Fido style
.MSG files are produced containing the encoded files.
The receiving utility, FDRECV, then scans the netmail
directory for any files containing encoded files and
extracts the .UUE file members. ANY decode utility can
decode the .UUE files including the UUD.C file distributed
with FDSEND (compilable with most any C compiler).
What does a .UUE file look like?
--------------------------------
The following is the beginning of an encoded file:
begin 644 FDRECV.exe
M35K@ !< C@ F $,$0Z3K @! #U!0 $\ !C E@ )L "Ja
MP@ -$ #H \@ /< #\ #P$ !0! I 0 2@$ %@ !a
M!C 0 < $ (D! "5 0 #@( !T" S @ . ( $8" !5 @ <0( a
Can I use FDSEND with Fidonet?
------------------------------
Yes! There are NO existing policies prohibiting
transmission of ANY Ascii data within a netmail message.
There are policies prohibiting encryption of messages,
however, such policies have no conceivable application
concerning encoded messages. Encoding and encryption have
two very different meanings. Encryption is the conversion of
material for the PURPOSE and with the intent that no other
person be able to access the original information. This
intent is also THE PURPOSE FOR THE FIDONET PROHIBITION
AGAINST ENCRYPTED MESSAGES.
Information contained within an encoded message is
accessible TO ALL WHO WISH ACCESS. The source code to decode
FDSEND encoded messages is distributed with FDSEND and
available as a compiled command line driven program to all
upon request!!
How do I use FDSEND?
--------------------
Simply select SEND from the menu and you will be prompted to
select the filename from a list. You can press F1 to change
drives.
In order to ensure that FDSEND does not send messages to the
wrong address, FDSEND does not accept fidonet style
addresses. You must enter the last name of the person to
whom you are sending a message.
FDSEND will then search the FD userlist indexes and display
a list of all names that match. For example, if you enter
the name MCDANIEL, using the current nodelist you'd find two
matches: SAM and JIM. If you entered MCDANIEL JA instead,
you'd only get the one match.
Also, since FDSEND send binaries, it is suggested that ANY
binary be compressed and the compressed version be sent to
conserve network usage as much as possible.
Also note that FDSEND generated messages have the
hold_for_pickup flag set. You MUST select to send the
messages directly OR turn the hold flag OFF. The local bit
is set to prevent *behaved* importers from importing FDSEND
messages.
FDSEND recognizes 4 command line arguments:
/M to run in monochrome mode
/K to KILL (erase) .MSG files as encoded messages are
extracted
/F to FORCE scanning ALL .msg files for FDSEND
messages. Ordinarily, FDRECV will not extract files
that YOU have created to send out. If you use the /F
option, FDRECV won't care who sent what.
/C to process the encoded message line by line and add
a CRLF after each line (necessary for use with
TosScan.).
Each of these arguments can be changed from the menu option
RECEIVE/CHANGE.
File Encryption
---------------
FDSEND also provides the ability to password protect encoded
files. Each time you select a file to FDSEND, you will be
prompted for a password to protect that file. If you don't
want to encrypt the selected file, simply press [ENTER]
without entering a password.
If you *DO* enter a password, only FDSEND can be used to
decode the file (FDRECV can't be used) and the receiver must
enter the EXACT same password or the file will not be
decoded correctly.
File encryption is intended for use ONLY in private networks
and should not be used with public-only networks such as
FidoNet.
How do I decode FDSEND messages?
--------------------------------
Any way you want!
First, you can use FDRECV distributed with FDSEND. Yes, that
would mean that the person you are sending the binary to
already possesses FDRECV.
FDRECV scans incoming netmail and extracts any FDSEND
encoded files to their original forms while ALSO creating
uue files. FDRECV will not overwrite existing files! If a
file exists in the current area having the same name as the
binary file being extracted by FDRECV, FDRECV will rename
the last letter of the filename. For example, if someone
sends you a copy of the FDSEND.pak file and you already have
a copy, FDRECV will extract the file as FDSEND.PA0.
FDRECV recognizes one argument:
/K This argument will cause FDRECV to KILL the .msg
files after extraction.
By default, FDRECV does not kill (erase) .msg files from
which it has extracted .UUE files. If you import netmail
into your bbs, you'll want to erase them or move them from
the reaches of your importer.
FDRECV recognizes 4 command line arguments:
/? to display a help screen
/K to KILL (erase) .MSG files as encoded messages are
extracted
/F to FORCE scanning ALL .msg files for FDSEND
messages
/C to process the encoded message line by line and add
a CRLF after each line.
Ordinarily, FDRECV will not extract files that YOU have
created to send out. If you use the /F option, FDRECV won't
care who sent what.
The last option was added because some mail handlers or
tossers manipulate the body of a message in such a way that
UUD cannot function. UUD expects a hard return (CRLF) after
every line in the .uue file. If your mailer extracts the LF
from the CRLF, run FDRECV with this option. You will know if
this is a problem with your system if UUD is unable to
decode the .uue files produced by FDRECV.
If you don't want to use FDRECV.....
You could also choose to write the messages to an Ascii disk
file, and cut the network stuff out of the message such that
you are ONLY left with the encoded file. You can then
decode the .uue files using UUD.EXE or ANY Unix style decode
utility (UUD.EXE is distributed with FDSEND) you can put the
.UUE files back together. The source code to UUD is also
included and is AND SHOULD REMAIN in the public domain.
Having written a message to disk, you'd chop out everything
but the good parts. FDSEND generated messages always begin
with the word table:
table
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 FDRECV.exe
M35K@ !< C@ F $,$0Z3K @! #U!0 ' $\ !C E@ )L "Ja
M P@ -$ #H \@ /< #\ #P$ !0! I 0 2@$ %@!a
M !C 0 < $ (D! "5 0 #@( !S @ . ( $8" !5 @ <0( a
... MUCH removed here
M @ $ 8 0 "@ <-@ ? 3 $@ " 0 !@ !a
M'P !PY #( !, 3 ( ! & $ R '#H *0 $P!0a
include uureb.uue
... and end EITHER with include instructions OR
M !0C 0 < $ (D! "5 0 #@( !T" S @ . ( $8" !5 @ <0( a
M4TA!3D1,10!204Y$4T5%1!415-4.#X-P!(14%015)23U(E)%14U)3@!a
(b'14%03U)'b
end
... the word "end"
EACH message should be written to a separate text file and
each should begin with the line that says "table" and should
end with the line that contains either "end" or "include."
The filenames are the same as the binary modified as:
begin 644 FDRECV.exe
^^^^^^^^^^
becomes the file uureA.UUE in the first encoded file.
^ ^^^
If there are multiple messages in this encoded binary, the
additional files would be named as: uureB.uue, FDRECV.uue,
etc.
Still, FDRECV is the easiest way to go as the extraction
process is automated for you. Once extracted, run UUD on
the FIRST .uue file in the series, such as:
UUD uureA.uue
How do I obtain FDSEND?
-----------------------
The UUD/UUE files distributed with FDSEND are public domain
and no claims are made upon or for them. FDRECV is freeware,
if you like it and USE it, you are welcome to do so.
The FDSEND (full-screen) utility, which also contains FDRECV
must be registered. For registration information, contact:
Online Communications, Inc
22 State Street
Bangor, Maine, USA 04401
Voice (207) 941-1110
Fidonet 1:132/300